Xpath-Abfragen mit PHP

Xpath ist eine Sprache, mit der auf einzelne Teile eines XML-Dokuments zugegriffen werden kann, wodurch XSLT-Transformationen praktisch überflüssig werden. Damit ist es auch ein unschätzbares Tool zur Verwaltung von XML-Daten in Webanwendungen.

Microsoft stellt die Xpath-Funktionalität über die Methoden selectSingleNode() und selectNodes() für DOM-Knoten und -Dokumente bereit. PHP hingegen verwendet Funktionen, welche die Xpath-Funktionalität über Kontexte bereitstellen. Das folgende Beispiel zeigt XML-Daten und PHP-Code, um auf unterschiedliche Teile des XML-Dokuments zuzugreifen. Auch wird erklärt, wie der PHP-Code funktioniert.

Der Beispielcode verwendet die folgenden XML-Daten zur Bereitstellung der Funktionalität. (Anmerkung: Dieser Code wurde unter PHP 4.3.4, Windows XP und IIS 5.1 entwickelt und erfolgreich getestet.)


Diese XML-Daten enthalten einige Elemente und ein paar Attribute, inklusive einer Namespace-Deklaration – also etwas schlichtes XML. Damit lassen sich unterschiedliche Abfragen ausprobieren.


Zuerst wird eine lokale Variable erstellt, welche den XML-String aufnimmt. Diese Information könnte zum Beispiel als Teil eines POST HTTP-Request übergeben worden sein. Für dieses Beispiel sind die Daten einfach im Code enthalten. Der nächste Schritt besteht darin, ein DOM-Dokument mithilfe der Funktion domxml_open_mem() zu erstellen. Diese Funktion erstellt aus einem gültigen XML-String ein DOM Document-Objekt im Speicher. Es erwartet einen Parameter: den XML-String. Eine andere Möglichkeit besteht darin, den XML-Code in einer separaten Datei zu speichern und mit der Funktion domxml_open_file() aus der Datei zu laden. Diese Funktion erwartet als Parameter den Namen der XML-Datei.

Themenseiten: Anwendungsentwicklung, PHP, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Xpath-Abfragen mit PHP

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *